import {
	uniStorage
} from "./storage"

export const uniRouter = {
	/**
	 * 保留当前页面，跳转到应用内的某个页面，使用uni.navigateBack可以返回到原页面。
	 * @param {String} path 跳转地址
	 */
	push: function(path) {
		uni.navigateTo({
			url: path
		})
	},
	/**
	 *  redirect 关闭当前页面，跳转到应用内的某个页面。
	 * @param {String} path 跳转地址
	 */
	redirectTo: function(path) {
		uni.redirectTo({
			url: path
		})
	},
	/** 
	 * relaunch 关闭所有页面，打开到应用内的某个页面。
	 * @param {String} path 跳转地址
	 */
	relaunchTo: function(path) {
		uni.reLaunch({
			url: path
		})
	},
	/**
	 * switchTab 跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面。
	 * @param {String } path 跳转地址
	 */
	switchTo: function(path) {
		uni.switchTab({
			url: path
		})
	},
	/**
	 * navigateBack 关闭当前页面，返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈，决定需要返回几层。
	 * @param {Number } count 后退几页 默认1
	 */
	back(count = 1) {
		uni.navigateBack({
			delta: count,
		})
	},
	/**
	 * 获取当前页面路径和参数 并返回
	 */
	getCurrentPagesUrlWithArgs: function() {
		let pages = getCurrentPages() //获取加载的页面
		let currentPage = pages[pages.length - 1] //获取当前页面的对象
		let url = currentPage.route //当前页面url

		let options = currentPage.options //如果要获取url中所带的参数可以查看options
		//拼接url的参数
		let urlWithArgs = url + '?'
		for (let key in options) {
			let value = options[key]
			urlWithArgs += key + '=' + value + '&'
		}
		urlWithArgs = urlWithArgs.substring(0, urlWithArgs.length - 1)
		return urlWithArgs;
	},
	/**
	 * 保留当前页面路径和参数，key 为 PATH
	 */
	setPath: function() {
		let data = this.getCurrentPagesUrlWithArgs();
		try {
			console.log(data)
			uniStorage.save("PATH", '/'+data)
		} catch (e) {
			console.log(e);
		}
	},
	/**
	 * 取出缓存中的路径和参数 默认key 'PATH'
	 * 
	 */
	getPath: function() {
		let value = uniStorage.getValue("PATH");
		return value;
	},



}